from Mr_Zhong.utils.predict import*

# 1.加载数据集
input_file = os.path.join('../data', 'test2.csv')
log1 = PowerLoadModel(input_file)
# 2.特征工程
x_test, y_test = feature_engineering(log1.data_source, log1.logfile)
# 3.加载模型
model = joblib.load('../model/xgb.pkl')
log1.logfile.info("================== 开始加载模型并且预测 ==================")
# 4.模型预测
y_pre = model.predict_proba(x_test)[:, 1]
y_pred = model.predict(x_test)
# 5.预测结果评价
print(f"模型在验证集上的auc:{roc_auc_score(y_test, y_pre)}")
mse_test = mean_squared_error(y_true=y_test, y_pred=y_pre)
mae_test = mean_absolute_error(y_true=y_test, y_pred=y_pre)

print(f"模型在验证集上的均方误差：{mse_test}")
print(f"模型在验证集上的平均绝对误差：{mae_test}")
print(f"分类评估报告:{classification_report(y_test, y_pred)}")
log1.logfile.info(f"模型对新数据进行预测的均方误差：{mse_test}")
log1.logfile.info(f"模型对新数据进行预测的平均绝对误差：{mae_test}")
log1.logfile.info(f"模型对新数据进行预测的平均绝对误差：{roc_auc_score(y_test, y_pre)}")
log1.logfile.info("================== 模型预测结束 ==================")
# 6.可视化操作
plot_1(y_test, y_pre)
plot_confusion_matrix(y_test, y_pred)